function diff = int_delta_OJS(m,param)

    m=min(param.m_u,m);
    diff=zeros(size(m));
    if max(m)>param.m_h
        delta_1 = (param.r + param.zeta + param.s.*param.lambda + param.omega_0./param.c).*param.m_h^(-1./(1-param.alpha)) ...
            - (1-param.omega_1)./param.alpha./param.c.*param.m_h^(1-1./(1-param.alpha));

        diff((m>param.m_h)) = param.zeta.*log(m(m>param.m_h)./param.m_h) + (1-param.omega_1)./param.alpha./param.c.*(m(m>param.m_h)-param.m_h) ...
            -(param.omega_0+(param.r + param.zeta).*param.c)./param.c.*log(m(m>param.m_h)./param.m_h)+delta_1.*(m(m>param.m_h).^(1/(1-param.alpha))-param.m_h.^(1/(1-param.alpha))).*(1-param.alpha) ...
            +(param.zeta+param.s.*param.lambda).*log(param.m_h./param.m_l);     
    end

    if min(m)<=param.m_h
        diff((m<=param.m_h)) = (param.zeta+param.s.*param.lambda).*log(m(m<=param.m_h)./param.m_l);
    end

end 